iT邦幫忙

2023 iThome 鐵人賽

DAY 10
0
AI & Data

紮實的ML機器學習原理~打造你對資料使用sklearn的靈敏度系列 第 10

DAY 10 「樸素貝葉斯(Naive Bayes)」來做新聞文本分類啦~

  • 分享至 

  • xImage
  •  

條件機率的ML變形~~

樸素貝葉斯(Naive Bayes)是一種基於貝葉斯定理和特征條件獨立假設的分類算法。它的“樸素”體現在假設所有特征都是相互獨立的,這意味著每個特征對於分類的貢獻是相互獨立的。

基本原理:
貝葉斯定理:根據貝葉斯定理,我們可以通過先驗概率和似然度來計算後驗概率,即給定特征條件下目標變量的概率。
特征條件獨立假設:樸素貝葉斯算法假設各個特征條件是相互獨立的,也就是說給定目標變量,各個特征之間是獨立的。
樸素貝葉斯分類器選擇具有最大後驗概率的類別作為預測的類別。

主要類型:
高斯樸素貝葉斯:適用於連續型數據,假設特征的條件概率符合高斯分布。

多項式樸素貝葉斯:適用於離散型數據,常用於文本分類任務。

伯努利樸素貝葉斯:處理二值型特征的分類問題。

from sklearn.datasets import fetch_20newsgroups
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score

# 載入新聞數據集
newsgroups_train = fetch_20newsgroups(subset='train')
X, y = newsgroups_train.data, newsgroups_train.target

# 將文本轉換為特征向量
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(X)

# 初始化多項式樸素貝葉斯模型
mnb = MultinomialNB()

# 在訓練集上訓練模型
mnb.fit(X, y)

# 預測分類
newsgroups_test = fetch_20newsgroups(subset='test')
X_test = vectorizer.transform(newsgroups_test.data)
y_pred = mnb.predict(X_test)

# 計算準確度
accuracy = accuracy_score(newsgroups_test.target, y_pred)
print(f'準確度:{accuracy}')

上一篇
DAY 9 「多元線性回歸(Linear Regression)」來做行銷活動預測啦~
下一篇
DAY 11 「XGBoost(eXtreme Gradient Boosting)」來做乳腺癌分類啦~
系列文
紮實的ML機器學習原理~打造你對資料使用sklearn的靈敏度30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言